#include <iostream>
#include <array>
using namespace std;

static uint64_t fuck(uint64_t n, uint64_t m) {
    if (n == 1)
        return 1;
    if (m == 1)
        return 1;
    if (m > n)
        return fuck(n, n);
    if (m == n)
        return 1 + fuck(n, m - 1);
    
    return fuck(n, m - 1) + fuck(n - m, m);
}

int main() {
    constexpr int size = 1 + 100;
    array<array<uint64_t, size>, size> arr {{0}};
    for (int i = 0; i < size; ++i)
        arr[1][i] = arr[i][1] = 1;
    for (int i = 2; i < size; ++i) {
        for (int j = 2; j < size; ++j) {
            if (i == j)
                arr[i][j] = 1 + arr[i][j - 1];
            else if (i < j)
                arr[i][j] = arr[i][i];
            else // i > j
                arr[i][j] = arr[i][j - 1] + arr[i - j][j];
        }
    }
#if 0
    for (int i = 0; i < size; ++i) {
        for (int j = 0; j < size; ++j)
            cout << arr[i][j] << ' ' ;
        cout << endl;
    }
#endif
    cout << arr[size - 1][size - 2] << endl;
    cout << fuck(100, 99) << endl;  // 190569291
}